/********************************
*文件名：菱形继承
*创建人：junwen
*日期：2020.11.12
*描述：菱形继承
*修改人：
*日期：
*版本：1.0
*********************************/
#include <iostream>
#include <string>
using namespace std;
//动物类
class animal
{
public:
	int m_Age;
};
//利用虚继承解决菱形继承的问题
//继承之前加上关键字virtual变为虚继承
//annimal类称为虚基类
//羊类
class Sheep:virtual public animal
{

};
//驼类
class Tuo:virtual public animal
{

};

//羊驼类
class SheepTuo:public Sheep,public Tuo
{
	
};

void test01()
{
	SheepTuo P1;
	P1.Sheep::m_Age = 10;
	P1.Tuo::m_Age = 28;

	//菱形继承，两个父类有相同的数据，需要加以区分
	cout << "Sheep::m_Age = " << P1.Sheep::m_Age << endl;
	cout << "Tuo::m_Age = " << P1.Tuo::m_Age << endl;
	//菱形继承两份数据，资源浪费
}
int main()
{
	test01();
	system("pause");
	return 0;
}